package cn.cjxy.springboot_zonghe_practice.query;

import lombok.Data;

/**
 * 分页查询基类
 * 用于统一处理分页参数，提供分页计算功能
 * 
 * @author huangjie
 * @since 2025-07-06
 */
@Data
public class BaseQuery {

    /**
     * 分页页码，从1开始
     * 前端传递的当前页码，默认为第1页
     */
    private Integer currentPage;

    /**
     * 分页每页展示条数
     * 每页显示的数据记录数量，如10、20、50等
     */
    private Integer pageSize;

    /**
     * 计算分页查询的起始位置
     * 
     * @Description: 前端传递的参数不是数据起始位置，而是页码，所以我们需要根据页码进行计算
     */
    public Integer getStart(){
        // 设置默认值
        if (this.currentPage == null || this.currentPage < 1) {
            this.currentPage = 1;
        }
        if (this.pageSize == null || this.pageSize < 1) {
            this.pageSize = 10;
        }
        
        // 分页起始位置计算公式：(页码-1) * 每页展示条数
        // 例如：第1页，每页10条，起始位置 = (1-1) * 10 = 0
        //      第2页，每页10条，起始位置 = (2-1) * 10 = 10
        return (this.currentPage - 1) * this.pageSize;
    }
} 